#!/usr/bin/env python
# encoding: utf-8
'''
@author: toby
@license: (C) Copyright 2013-2017, Node Supply Chain Manager Corporation Limited.
@contact: hejunwang01@126.com
@software: pycharm
@file: settings.py
@time: 2021-03-25 23:24
@desc:
'''

import os
from datetime import timedelta
import datetime

class Config(object):
    DEBUG = False
    TESTING = False
    DATABASE_URI = 'sqlite://:memory:'


# 配置worker
# 配置backend
class ProjectConfig(Config):
    CELERY_BROKER_URL = "redis://localhost:6379/0"
    CELERY_RESULT_BACKEND = "redis://localhost:6379/1"


# 产品环境
class ProductionConfig(Config):
    DATABASE_URI = 'mysql://user@localhost/foo'


# 开发环境
class DevelopmentConfig(Config):
    DEBUG = True  # 自动重启
    SECRET_KEY = os.urandom(64)  # 用来安全访问
    PERMANENT_SESSION_LIFETIME =timedelta(days=31)  # 配置7天有效


# 测试环境
class TestingConfig(Config):
    TESTING = True
    SECRET_KEY=os.urandom(64)     # 指明加密的密钥
    # PERMANENT_SESSION_LIFETIME =timedelta(days=31)  # 配置7天有效
    DEBUG = True  # 调试模式,打开后,修改文件 ,可以自动重启服务
    SQLALCHEMY_DATABASE_URI = \
        'mysql+pymysql://autochargeadmin:autochargeadmin@120.25.239.8:18001/autotestplateform'  # 数据库的地址
    SQLALCHEMY_TRACK_MODIFICATIONS = False  # 默认不追踪 mysql修改的信号量,一般不开启, 会影响性能
    # # 是否显示底层执行的SQL语句
    SQLALCHEMY_ECHO =False
    # SQLALCHEMY_COMMIT_ON_TEARDOWN =True

    # 构建项目所在的 绝对路径，
    BASE_DIR = os.path.abspath(".")
    print('CONfig BASE_DIR:{}'.format(BASE_DIR))
    # 静态资源存放路径
    # STATIC_ROOT = os.path.join(BASE_DIR, 'static/')
    # 自定义的 图片上传路径
    # UPLOAD_ROOT = os.path.join(BASE_DIR, 'static/upload/')
    # APITESTCASEDATA = os.path.join(BASE_DIR,'/pytest_pkg/testcase-data/')
    # print('APITESTCASEDATA:{}'.format(APITESTCASEDATA))

    JWT_ACCESS_TOKEN_EXPIRES = datetime.timedelta(days=7)  # 指明token的过期时间
    # JWT_HEADER_TYPE = 'JWT'  # 可以修改 请求头中 ，token字符串的 前缀
    # 默认   Authorization: Bearer <token>
    # 修改：  Authorization: JWT <token>
    # 自动把字典返回格式, 中文就可以正常返回给前端展示了
    JSON_AS_ASCII = False


# flask全部配置
'''
{
        'DEBUG':                                get_debug_flag(default=False),  是否开启Debug模式
        'TESTING':                              False,                          是否开启测试模式
        'PROPAGATE_EXCEPTIONS':                 None,                          
        'PRESERVE_CONTEXT_ON_EXCEPTION':        None,
        'SECRET_KEY':                           None,
        'PERMANENT_SESSION_LIFETIME':           timedelta(days=31),
        'USE_X_SENDFILE':                       False,
        'LOGGER_NAME':                          None,
        'LOGGER_HANDLER_POLICY':               'always',
        'SERVER_NAME':                          None,
        'APPLICATION_ROOT':                     None,
        'SESSION_COOKIE_NAME':                  'session',
        'SESSION_COOKIE_DOMAIN':                None,
        'SESSION_COOKIE_PATH':                  None,
        'SESSION_COOKIE_HTTPONLY':              True,
        'SESSION_COOKIE_SECURE':                False,
        'SESSION_REFRESH_EACH_REQUEST':         True,
        'MAX_CONTENT_LENGTH':                   None,
        'SEND_FILE_MAX_AGE_DEFAULT':            timedelta(hours=12),
        'TRAP_BAD_REQUEST_ERRORS':              False,
        'TRAP_HTTP_EXCEPTIONS':                 False,
        'EXPLAIN_TEMPLATE_LOADING':             False,
        'PREFERRED_URL_SCHEME':                 'http',
        'JSON_AS_ASCII':                        True,
        'JSON_SORT_KEYS':                       True,
        'JSONIFY_PRETTYPRINT_REGULAR':          True,
        'JSONIFY_MIMETYPE':                     'application/json',
        'TEMPLATES_AUTO_RELOAD':                None,
    }
'''
